package com.tools.web.interceptor.auth._common;

import com.tools.common.object.Note;

/**
 * 用户单在线记录的 Redis-Lua 脚本接口
 * */
@Note("用户单在线记录的 Redis-Lua 脚本接口")
public interface SingleRedisLuaScript {

    @Note("【用户身份认证拦截器】 - 单用户在线 - 在 Redis 缓存里替换修改 AuthUser")
    String UPDATE_AUTH_USER =
            "local key = ARGV[1];" +
                    "local newValue = ARGV[2];" +
                    "local ttl = redis.call('ttl', key);" +
                    "if ttl > 0 then" +
                    "    redis.call('setex', key, ttl, newValue);" +
                    "    return 1;" +
                    "else" +
                    "    return 0;" +
                    "end";
}
